<?php
/**
 * Получение хэша пароля.
 */
class Workset_Filter_PasswordHash implements Zend_Filter_Interface {
	/**
	 * @var string
	 */
	protected $_sLogin = '';

	/**
	 * Инициализация объекта класса.
	 * 
	 * @param string $sLogin
	 */
	public function __construct($sLogin = '') {
		if (is_object($sLogin) && $sLogin instanceof Zend_Config) {
			$sLogin = $sLogin->toArray();
		}

		if (is_array($sLogin) && array_key_exists('login',$sLogin)) {
			$sLogin = $sLogin['login'];
		}

		if (!is_string($sLogin)) {
			throw new Zend_Exception('You must set login.');
		}

		$this->_sLogin = $sLogin;
	}

	/**
	 * (non-PHPdoc)
	 * @see library/Zend/Filter/Zend_Filter_Interface#filter()
	 */
	public function filter($value) {
		return $value
			? Workset_Auth::getInstance()->getPasswordHash($this->_sLogin,$value)
			: '';
	}
}
?>